package com.stefanini.pe.bbva.mbl.in.listeners;


import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.apache.log4j.Logger;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import com.stefanini.pe.bbva.mbl.in.carga.common.Properties;

public class SpringInit implements ServletContextListener {
    private static Logger logger = Logger.getLogger(SpringInit.class);
    private static WebApplicationContext springContext;
    
    public void contextInitialized(ServletContextEvent event) {
    	//CargaArchivoBO cargaArchivoService = null;;
    	
    	try {
	    	logger.info("[SpringInit :: contextInitialized] Inicio");
	    	
	        springContext = WebApplicationContextUtils.getWebApplicationContext(event.getServletContext());
	        com.stefanini.pe.bbva.mbl.in.carga.common.Constantes.URL_PATH_SERVER=springContext.getServletContext().getRealPath("/");
	        
	        Properties prop=new Properties();
	        com.stefanini.pe.bbva.mbl.in.carga.common.Constantes.HILO_CARGADIARIA_TIMEOUT_MILISEG=prop.getMessage(Properties.RUTA_ARCHIVO_CONGIFURACION,"hilo.cargadiaria.intervalotimeout");
	        
	        com.stefanini.pe.bbva.mbl.in.carga.common.Constantes.ESQUEMA=prop.getMessage(Properties.RUTA_ARCHIVO_SQLMAPCONFIG,"esquema");
	        
	        
	        //cargaArchivoService = (CargaArchivoBO) SpringInit.getApplicationContext().getBean("cargaArchivoService");
	        //cargaArchivoService.inicializarHoraQuartz();
	        //Invocar para agregar metodo de Generacion de pagos de contratos de tipo RE 
	        //cargaArchivoService.inicializarHoraArcPagosContREQuartz();
	        
	        logger.info("[SpringInit :: contextInitialized] Fin");
    	} catch(Exception e) {
    		logger.error(e.getMessage(), e);
    	}
    }
    
    public void contextDestroyed(ServletContextEvent event) {
        springContext = null;
    }
    
    public static ApplicationContext getApplicationContext() {
        return springContext;
    }  
}